<?php
/* ###############################################################################
 *
 * $Id: file.php 60 2015-01-03 18:47:09Z expertsoftware.i@gmail.com $
 *
 * システム名
 *   PHP Web フレームワーク [Ponzu]
 *
 * 機能
 *   ファイル ライブラリ
 *
 * バージョン
 *   0.0.0_0
 *
 * ライセンス
 *   LGPL v2.0
 *
 * 履歴
 *   2007/07/01 K.Sonohara
 *     新規作成。
 *
 * ###############################################################################*/

/**
 * 拡張子取得。
 * @access  public
 * @param $filename ファイル名
 * @return 処理結果
 */
function getExt($filename) {
  $f = explode(".", $filename);
  return $f[count($f) - 1];
}

/**
 * ファイル一覧取得。
 * @access  public
 * @param $dir 対象ディレクトリ
 * @param $exts 対象拡張子
 * @param $excludes 除外ファイル
 * @return 処理結果
 */
function listFiles($dir, $exts = null, $excludes = null) {
	$files = array();
  try {
  	if ((file_exists($dir)) && ($handle = opendir($dir))) {
  		while (false !== ($file = readdir($handle))) {
  			if (is_file($dir.$file)) {
          if ($exts != null){
            $ext = getExt(basename($file));
            if (isArray($ext,$exts) == false) {
              continue;
            }
          }

          if ($excludes != null){
            if (isArray($dir.$file, $excludes)) {
              continue;
            }
          }

   				$files[basename($file)] = $dir.$file;
  			}
  		}
  		closedir($handle);
  	}
  } catch(Exception $e) {
  }
	return $files;
}

/**
 * ファイル読み込み
 * @access  public
 * @param $name ファイル名
 * @return 処理結果
 */
function loadTextFile($name) {
	$file = file($name);
	$file = implode("", $file);

	return mb_convert_encoding($file, SITE_ENCODE, "ASCII,JIS,UTF-8,EUC-JP,SJIS");
}

function trimTexts($a) {
  $c = count($a);

  for ($i = 0; $i < $c; $i++) {
    $a[$i] = trim($a[$i]);
  }

  return $a;
}

/**
 * ファイル読み込み
 * @access  public
 * @param $filepath ファイルパス
 * @param $filename ファイル名
 * @param $mime_type MIMEタイプ
 */
function showFile($filepath, $filename, $mime_type=null) {
  if (file_exists($filepath)) {
//    $mime_type = mime_content_type($filepath);

    mb_http_output("pass");
    header("Content-type: {$mime_type}");
    header("Content-Disposition: inline; filename=".$filename);
    header("Content-length: " . filesize($filepath));
    readfile($filepath);
  } else {
    errorHTTP(404);
  }
}

?>
